package com.atguigu.jxc.dao;

import com.atguigu.jxc.entity.PurchaseList;
import com.atguigu.jxc.entity.vo.PurchaseListCountVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @author 杨林
 * @create 2023-01-29 20:55 星期日
 * description:
 */
public interface PurchaseListDao {
    /**
     * purchaseList入库
     * @param purchaseList
     */
    void save(PurchaseList purchaseList);

    /**
     * 根据条件查询purchaseList
     * @param purchaseNumber
     * @param supplierId
     * @param state
     * @param sTime
     * @param eTime
     * @return
     */
    List<PurchaseList> list(@Param("purchaseNumber") String purchaseNumber,
                            @Param("supplierId") Integer supplierId,
                            @Param("state") Integer state,
                            @Param("sTime") String sTime,
                            @Param("eTime") String eTime);

    /**
     *
     * @param purchaseListId
     */
    void delete(@Param("purchaseListId") Integer purchaseListId);

    /**
     * 支付结算（修改进货单付款状态）
     * @param purchaseListId
     */
    void updateState(@Param("purchaseListId") Integer purchaseListId);

    /**
     * 进货统计（可根据 商品类别、商品编码或名称 条件查询）
     * @param sTime
     * @param eTime
     * @param goodsTypeId
     * @param codeOrName
     * @return
     */
    List<PurchaseListCountVo> count(@Param("sTime") String sTime,
                                    @Param("eTime") String eTime,
                                    @Param("goodsTypeId") Integer goodsTypeId,
                                    @Param("codeOrName") String codeOrName);
}
